Vim的语言性思维

GO

本文内容并非原创,而是整理自别人的技术文章。原文请看这里一起来说 Vim 语


1. Vim的常用三种模式

  1. 正常模式(进入vim时处于的就是默认模式)
  2. 插入模式(编辑文本时的所处的模式)
  3. 命令模式(进行保存退出、查找替换、设置等动作时所处的模式)

2. Vim的语言性思维

2.1 动词

动词代表了我们打算对文本进行什么样的操作。例如:

  • d 表示删除 delete
  • r 表示替换 replace
  • c 表示修改 change
  • y 表示复制 yank
  • v 表示选取 visual select
  • p 表示粘贴 paste
  • 等等……

2.2 名词

名词代表了我们即将处理的文本。Vim 中有一个专门的术语叫做文本对象 text object。例如:

  • w 表示一个单词 word
  • s 表示一个句子 sentence
  • t 表示一个HTML标签 tag
  • p 表示一个段落 paragraph
  • 引号或各种括号 所包含的文本称作一个 文本块
  • 等等……

2.3 介词

介词界定了待编辑文本的范围或者位置。例如:

  • i 表示“在……之内” inside
  • a 表示“环绕” around
  • t 表示“到……位置前” to
  • f 表示“到……位置上” forward

下面是几个有关范围的示意图:

2.4 组词为句

有了这些基本的语言元素,我们就可以着手构造一些简单的命令了。文本编辑命令的基本语法如下:

动词 [介词] 名词

下面是一些例子:

删除一个段落: delete inside paragraph–>
dip

选取一个句子: visual select inside sentence–>
vis

修改一个单词: change inside word–>
ciw

修改一个单词: change around word–>
caw

删除文本直到字符“x”(不包括字符“x”): delete to x–>
dtx

删除文本直到字符“x”(包括字符“x”): delete forward x–>
dfx

2.5 数词

数词指定了待编辑文本对象的数量,从这个角度而言,数词也可以看作是一种介词。引入数词之后,文本编辑命令的语法就升级成了下面这样:

动词 介词/数词 名词

下面是几个例子:

修改三个单词:change three words–>
c3w

删除两个单词:delete two words–>
d2w

另外,数词也可以修饰动词,表示将操作执行 n 次。于是,我们又有了下面的语法:

数词 动词 名词

请看示例:

两次删除单词(等价于删除两个单词): twice delete word–>
2dw

三次删除字符(等价于删除三个字符):three times delete character–>
3x


3. 结束语

以上内容为一种使用Vim的思维方式。


OK

0%